package org.budo.weixin.work;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import org.budo.weixin.message.Article;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * @author li
 * @version 1 (2015年10月12日 上午11:28:37)
 * @since Java7
 */
@Getter
@Setter
@ToString
public class WorkWeixinMessage implements Serializable {
    private static final long serialVersionUID = 555043610188089474L;

    public static final String TYPE_TEXT = "text";

    public static final String TYPE_IMAGE = "image";

    public static final String TYPE_VOICE = "voice";

    public static final String TYPE_VIDEO = "video";

    public static final String TYPE_NEWS = "news";

    public static final String TYPE_SHORT_VIDEO = "shortvideo";

    public static final String TYPE_LOCATION = "location";

    public static final String TYPE_EVENT = "event";

    public static final String EVENT_CLICK = "click";

    public static final String EVENT_SUBSCRIBE = "subscribe";

    public static final String EVENT_UNSUBSCRIBE = "unsubscribe";

    public static final String EVENT_CHANGE_CONTANCT = "change_contact";

    public static final String EVENT_LOCATION = "location";

    public static final String LINK = "link";

    private String toUserName;

    private String fromUserName;

    private Long createTime;

    private String messageType;

    private String content;

    private String messageId;

    private String mediaId;

    private String picUrl;

    private String format;

    private String thumbMediaId;

    private String event;

    private String eventKey;

    private String scanType;

    private String scanResult;

    private String latitude;

    private String longitude;

    private String precision;

    private String locationX;

    private String locationY;

    private String scale;

    private String label;

    private String url;

    private String title;

    private String description;

    /**
     * 企业应用的id
     */
    private String agentId;

    private List<Article> articles;

    /**
     * 以下为成员变更的属性
     */
    private String changeType;

    private String userID;

    private String newUserID;

    private String name;

    private Integer department[];

    private String position;

    private String gender;

    private String email;

    private String status;

    private String avatar;

    private String englishName;

    private String isLeader;

    private String telephone;

    private String mobile;

    private List<Map<String, String>> extAttr;

    /**
     * 新增部门的部门Id
     */
    private Integer id;
}